# 指定要生成的内核模块名称（注意：后缀要是 .o）
# obj-m += hisi_l0_mem_pool.o
obj-m += hisi_l0_mem_pool.o

hisi_l0_mem_pool-objs := hisi_l0_mem_pool_core.o \
                         hisi_l0_flex_allocator.o \
                         hisi_l0_fix_allocator.o \
                         hisi_l0_numa_pool.o \
                         hisi_l0_debug.o \
                         hisi_l0_utils.o

# obj-m += test_l0_mem_pool_mul_perf.o
# obj-m += test_l0_mem_pool_softirq.o
obj-m += hisi_l0.o 
#obj-m += test.o
# obj-m += test_l0_mem_pool.o
# obj-m += test_l0_mem_pool_mul.o 
#obj-m += hisi_l0.o
#obj-m += test_l0_mem_pool_perf.o
#obj-m += test_l0_mem_pool_perf1.o

# 如果有多个源文件组成一个模块（例如：mod.c + helper.c）
# 取消下面两行的注释，并将模块名替换为实际名称：
# obj-m += complex_module.o
# complex_module-objs := mod.o helper.o

KERNEL_PATH ?= /lib/modules/5.10.0_l0_mwp+/build
EXTRA_CFLAGS += -I/lib/modules/5.10.0_l0_mwp+/build/drivers/soc/hisilicon/
EXTRA_CFLAGS += -I/usr/src/kernels/5.10.0_l0_mwp+/include/linux/
#EXTRA_CFLAGS += -g -O

# 编译架构和交叉编译工具链（本地编译无需指定）
# ARCH ?= arm
# CROSS_COMPILE ?= arm-linux-gnueabihf-

all:
    # 调用内核构建系统编译模块
	$(MAKE) -C $(KERNEL_PATH) M=$(PWD) modules
    # 如果需要指定架构和交叉编译，添加以下参数：
    # $(MAKE) -C $(KERNEL_PATH) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules

clean:
    # 清理编译生成的文件
	$(MAKE) -C $(KERNEL_PATH) M=$(PWD) clean

